const fs = require("fs");


/** 文件介绍
 * 插件模块处理中心
 * 使配置文件加载为处理序列中
 */


// 配置文件加载
var queSet = [];
try {
    queSet = fs.readFileSync(__dirname + "/soltSet.json",'utf-8');
} catch(e) {
    console.error("插件配置文件加载失败");
    throw e;
} finally {
    queSet =  eval(queSet);
}

// 根据配置安装插件
for(let i in queSet) {
    var name = queSet[i].name;
    if(!queSet[i].use)  continue;

    try {
        var c = require('./plug/' + name)
    } catch(e) {
        console.warn(name + " 插件加载失败");
        queSet[i].use = false;
        continue;
    }
    queSet[i].func = c.func;
}
console.info("[ 插件加载 ] ......完成");
// console.log(queSet);

/**
 * 处理序列
 * 根据反馈的 order 进行调度
 * true 终止 false 继续
 * 
 */

queFunc = function(mes,resp) {
    for(let i in queSet) {
        if(!queSet[i].use)   continue;
        
        console.log("事件处理: " + queSet[i].name);
        var order = queSet[i].func(mes,resp);

        if(order)   return;
    }
}

queFunc();

module.exports = {
    queFunc : queFunc
}
